/* 分析页面共同样式 */

/* 内容卡片 */
.content-card {
    margin-bottom: 20px;
}

/* 操作栏 */
.operation-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding: 16px;
    background: #f8f9fa;
    border-radius: 8px;
}

/* 文件上传区域 */
.upload-area {
    border: 2px dashed #d9d9d9;
    border-radius: 6px;
    padding: 40px;
    text-align: center;
    background: #fafafa;
    transition: border-color 0.3s;
}

.upload-area:hover {
    border-color: #2F54EB;
}

.upload-area.dragover {
    border-color: #2F54EB;
    background: #f0f5ff;
}

/* 文件列表表格 */
.file-list-table {
    margin-top: 16px;
}

/* 进度指示器 */
.progress-indicator {
    display: flex;
    align-items: center;
    gap: 8px;
}

.analysis-progress {
    width: 100px;
}

/* 任务状态显示 */
.task-status-section {
    margin-bottom: 16px;
    padding: 12px;
    background: #f8f9fa;
    border-radius: 6px;
    border-left: 4px solid #409eff;
}

.task-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.task-id-display {
    font-family: 'Courier New', monospace;
    font-size: 12px;
    color: #666;
    background: #f0f0f0;
    padding: 2px 6px;
    border-radius: 3px;
}

.task-progress-section {
    margin-top: 8px;
}

.task-progress-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px;
    font-size: 12px;
    color: #666;
}

/* 任务状态标签样式 */
.task-status-pending {
    background-color: #f4f4f5;
    color: #909399;
}

.task-status-running {
    background-color: #e1f3ff;
    color: #409eff;
}

.task-status-completed {
    background-color: #f0f9ff;
    color: #67c23a;
}

.task-status-failed {
    background-color: #fef0f0;
    color: #f56c6c;
}

.task-status-stopped {
    background-color: #fdf6ec;
    color: #e6a23c;
}

/* 停止任务按钮 */
.stop-task-button {
    margin-left: 8px;
}

/* 并排卡片布局 */
.cards-row {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
}

.card-half {
    flex: 1;
}

.card-half .content-card {
    height: 100%;
}

.card-half .el-card {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.card-half .el-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* 日志内容 */
.log-content {
    overflow-y: auto;
    background: #1e1e1e;
    color: #ffffff;
    padding: 12px;
    border-radius: 4px;
    font-family: 'Courier New', monospace;
    font-size: 12px;
    line-height: 1.4;
    flex: 1;
    max-height: 400px;
}

.log-entry {
    margin-bottom: 4px;
    word-wrap: break-word;
}

.log-success {
    color: #67c23a;
}

.log-warning {
    color: #e6a23c;
}

.log-error {
    color: #f56c6c;
}

.log-info {
    color: #409eff;
}

/* 实时日志状态指示器 */
.realtime-log-indicator {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #e8f4fd;
    border-radius: 4px;
    margin-bottom: 8px;
    font-size: 12px;
    color: #409eff;
}

.realtime-log-indicator .el-icon {
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* 日志操作按钮组 */
.log-actions {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
}

.log-actions .el-button {
    font-size: 12px;
    padding: 4px 8px;
}

/* 结果展示区域 */
.results-section {
    margin-top: 20px;
}

.results-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding: 12px;
    background: #f5f7fa;
    border-radius: 6px;
}

.column-manager {
    display: flex;
    align-items: center;
    gap: 8px;
}

.export-options {
    display: flex;
    gap: 8px;
}

/* 分析控制面板 */
.analysis-control-panel {
    margin-bottom: 20px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.control-section {
    margin-bottom: 20px;
}

.control-section:last-child {
    margin-bottom: 0;
}

.control-label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: #303133;
}

.start-analysis-section {
    text-align: center;
    padding: 20px;
    background: #f0f9ff;
    border-radius: 8px;
    border: 1px solid #d1ecf1;
}

/* 分析按钮状态 */
.start-analysis-button {
    transition: all 0.3s ease;
}

.start-analysis-button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* 文件状态样式 */
.file-status-waiting {
    color: #909399;
}

.file-status-uploading {
    color: #409eff;
}

.file-status-analyzing {
    color: #409eff;
}

.file-status-completed {
    color: #67c23a;
}

.file-status-error {
    color: #f56c6c;
}

/* 文件操作按钮 */
.file-actions {
    display: flex;
    gap: 4px;
}

.file-actions .el-button {
    padding: 4px 8px;
    font-size: 12px;
}

/* 加载状态指示器 */
.loading-indicator {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #409eff;
    font-size: 12px;
}

.loading-indicator .el-icon {
    animation: spin 1s linear infinite;
}

/* 空状态提示 */
.empty-state {
    text-align: center;
    padding: 40px 20px;
    color: #909399;
}

.empty-state-icon {
    font-size: 48px;
    margin-bottom: 16px;
    opacity: 0.5;
}

.empty-state-text {
    font-size: 14px;
    line-height: 1.5;
}

/* 响应式设计 */
@media (max-width: 768px) {
    .cards-row {
        flex-direction: column;
    }
    
    .task-info {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    
    .log-actions {
        flex-wrap: wrap;
    }
    
    .results-toolbar {
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
    }
    
    .column-manager,
    .export-options {
        justify-content: center;
    }
}